package modelo;

import java.io.Serializable;
import javax.persistence.*;


/**
 * The persistent class for the imovel database table.
 * 
 */
@Entity
@NamedQueries({
	@NamedQuery(name="Imovel.listaImoveis",query="SELECT i FROM Imovel i where email = :email" ),
	@NamedQuery(name="Imovel.listaParametros", 
	query = "SELECT i FROM Imovel i WHERE " +
			"(cidade = :cidade or :cidade = '') and " +
			"(quant_banheiros = :quant_banheiros or :quant_banheiros = 0) and " +
			"(qnt_quartos = :qnt_quartos or :qnt_quartos = 0) and " +
			"(garagem = :garagem)"),
	@NamedQuery(name="Imovel.listaCidades", query = "SELECT distinct i.cidade FROM Imovel i"),
	@NamedQuery(name="Imovel.listaIndex", query = "SELECT i FROM Imovel i order by random()")
	
})
public class Imovel implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name="id_pk")
	@GeneratedValue
	private Integer idPk;

	private String bairro;

	private String cep;

	private String cidade;

	private String descricao;

	private String estado;

	private String foto;

	private Boolean garagem;

	private Integer numero;

	@Column(name="quant_banheiros")
	private Integer qtdBanheiros;

	@Column(name="qnt_quartos")
	private Integer qtdQuartos;

	private String referencia;

	private String rua;

	private String status;

	private String tipo;

	@Column(name="valor_aluguel")
	private double valorAluguel;

	//bi-directional many-to-one association to Usuario
	@ManyToOne
	@JoinColumn(name="email")
	private Usuario usuario;

	public Imovel() {
	}

	public Integer getIdPk() {
		return this.idPk;
	}

	public void setIdPk(Integer idPk) {
		this.idPk = idPk;
	}

	public String getBairro() {
		return this.bairro;
	}

	public void setBairro(String bairro) {
		this.bairro = bairro;
	}

	public String getCep() {
		return this.cep;
	}

	public void setCep(String cep) {
		this.cep = cep;
	}

	public String getCidade() {
		return this.cidade;
	}

	public void setCidade(String cidade) {
		this.cidade = cidade;
	}

	public String getDescricao() {
		return this.descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public String getEstado() {
		return this.estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	public String getFoto() {
		return this.foto;
	}

	public void setFoto(String foto) {
		this.foto = foto;
	}

	public Boolean getGaragem() {
		return this.garagem;
	}

	public void setGaragem(Boolean garagem) {
		this.garagem = garagem;
	}

	public Integer getNumero() {
		return this.numero;
	}

	public void setNumero(Integer numero) {
		this.numero = numero;
	}

	public Integer getQtdBanheiros() {
		return this.qtdBanheiros;
	}

	public void setQtdBanheiros(Integer qtdBanheiros) {
		this.qtdBanheiros = qtdBanheiros;
	}

	public Integer getQtdQuartos() {
		return this.qtdQuartos;
	}

	public void setQtdQuartos(Integer qtdQuartos) {
		this.qtdQuartos = qtdQuartos;
	}

	public String getReferencia() {
		return this.referencia;
	}

	public void setReferencia(String referencia) {
		this.referencia = referencia;
	}

	public String getRua() {
		return this.rua;
	}

	public void setRua(String rua) {
		this.rua = rua;
	}

	public String getStatus() {
		return this.status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public String getTipo() {
		return this.tipo;
	}

	public void setTipo(String tipo) {
		this.tipo = tipo;
	}

	public double getValorAluguel() {
		return this.valorAluguel;
	}

	public void setValorAluguel(double valorAluguel) {
		this.valorAluguel = valorAluguel;
	}

	public Usuario getUsuario() {
		return this.usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

}